A crosspoint memory array is an array of memory cells disposed between two sets of conductors running orthogonally on opposite sides of the memory cells. The first set of conductors, disposed on one side of the memory cells, may be referred to as the word lines, while the second set of conductors, disposed on the other side of the memory cells, may be referred to as bit lines. A multi-layer crosspoint memory array can include several layers of memory cells alternating between layers of word lines and bit lines. A three-dimension crosspoint memory array can include several layers of memory cells, with word lines running horizontally between the layers and bit lines running vertically through the layers. Each memory cell in the crosspoint memory array is disposed at the crosspoint of a single word line and a single bit line. Selection of a single memory cell within the array for reading or writing the memory cell can be achieved by activating the word line and bit line associated with that memory cell. Writing data to the memory cell may involve applying a voltage pulse to a selected memory cell to change the memory cell's resistance state. The reading of the selected memory cell may be achieved by applying a read voltage to a selected memory cell and measuring the resulting current through the selected memory cell.